package com.epam.grsulab.webapi.dao.base;

import java.io.Serializable;
import java.util.List;

import com.epam.grsulab.webapi.entity.base.BaseEntity;

/**
 * @author Dmitry_Zhivushko
 * 
 * @param <T>
 */
public interface Dao<T extends BaseEntity> {
	void delete(T o);

	void delete(final Serializable id);

	T load(Serializable id);

	T save(T o);

	List<T> findAll();

	Long countAll();

	Class<T> getDomainClass();

}
